home *** CD-ROM | disk | FTP | other *** search
- ;;; -*- Mode: Lisp; Package: Maxima; Syntax: Common-Lisp; Base: 10 -*- ;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; The data in this file contains enhancments. ;;;;;
- ;;; ;;;;;
- ;;; Copyright (c) 1984,1987 by William Schelter,University of Texas ;;;;;
- ;;; All rights reserved ;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; (c) Copyright 1980 Massachusetts Institute of Technology ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (in-package "MAXIMA")
- (macsyma-module ratpoi)
-
- (DECLARE-top (SPECIAL $RATVARS POISCOM1 POISHIFT $LIM))
-
- (DECLARE-top (SPECIAL $GCDOFF $RATEXPAND GENVAR VARLIST POISCO1 POISCOM1 GEN TR TLIST))
-
- (SETQ POISCO1 '(1. . 1.) POISCOM1 '(-1. . 1.))
-
- ;;; THESE PROGRAMS MAKE POISSON COEFFICIENTS RATIONAL FUNCTIONS (CRE)
- ;;; POISCDECODE DECODES A COEFFICIENT
-
- (DEFUN POISCDECODE (X)
- ($RATDISREP (CONS (LIST 'MRAT 'SIMP (CDR $RATVARS) GENVAR) X)))
-
- ;;; INTOPOISCO PUTS AN EXPRESSION INTO POISSON COEFFICIENT FORM
-
- ;(defmacro nonperiod (&rest p)
- ; (setq p (cons 'nonperiod p))
- ; (AND (NULL (CADR P)) (EQUAL (CAADDR P) POISHIFT) (NULL (CDDR (CADDR P)))))
-
- (DEFUN INTOPOISCO (X)
- (COND ((AND (NOT (ATOM X)) (NUMBERP (CDR X))) X)
- (T (CDR(RATREP X (CDR $RATVARS))))))
-
- ;;; POISCO+ ADDS 2 COEFFICIENTS
- ;;; POISCO* MULTIPLIES 2 COEFFICIENTS
-
- (DEFUN POISCO* (X Y) (RATTIMES X Y T))
-
- (DEFUN POISCO+ (X Y) (RATPLUS X Y))
-
- ;;; HALVE DIVIDES A COEFFICIENT BY 2
-
- (DEFUN HALVE (R) (RATTIMES '(1. . 2.) R T))
-
- ;;; POISSUBSTCO SUBSTITUTES AN EXPRESSION FOR A VARIABLE IN A COEFFICIENT.
-
- (DEFUN POISSUBSTCO (A B X)
- (INTOPOISCO (MAXIMA-SUBSTITUTE A
- B
- ($RATDISREP (CONS (LIST 'MRAT
- 'SIMP
- (CDR $RATVARS) GENVAR)
- X)))))
-
- (DEFUN POISPZERO (X) (EQUAL 0. (CAR X)))
-
-
- ;;; TEST FOR ZERO
-
- (DEFUN POISCOINTEG (H VAR) (INTOPOISCO ($INTEGRATE (POISCDECODE H) VAR)))
-
-